#! /usr/bin/python
# encoding:utf-8
from abc import ABC

from tornado.web import RequestHandler

from views.ViewRouterInterface import ViewRouterInterface


# 从终端模块中导出define模块用于读取参数，导出options模块用于设置默认参数
# 开始调试模式


# 定义端口用于指定HTTP服务监听的端口
# 如果命令行中带有port同名参数则会称为全局tornado.options的属性，若没有则使用define定义。
# define("port", type=int, default=8000, help="run on the given port")
# 调试模式
# define("debug", type=bool, default=True, help="debug mode")


# 创建请求处理器
# 当处理请求时会进行实例化并调用HTTP请求对应的方法
class MainHandler(ViewRouterInterface, RequestHandler, ABC):

    # 路由表
    def configRouter(self):
        return [
            (r"/hello", MainHandler),
            (r"/index1", MainHandler)
        ]

    # 定义get方法对HTTP的GET请求做出响应
    def get(self, *args, **kwargs):
        # 从querystring查询字符串中获取id参数的值，若无则默认为0.
        id = self.get_query_argument("id", strip=True)
        # write方法将字符串写入HTTP响应
        self.write("hello world id = " + str(id))

# 创建路由表
# urls = [
#     (r"/", MainHandler),
#     (r"/index", MainHandler)
# ]


# 创建配置
# settings = dict(
#     debug=options.debug
# )


# 创建应用
# def make_app():
#     return Application(urls, settings)


# 定义服务器
# def main():
# 解析命令行参数
# options.parse_command_line()
# 创建应用
# app = make_app()
# 创建HTTP服务器实例
# server = HTTPServer(app)
# 监听端口
# server.listen(options.port)
# 创建IOLoop实例并启动
# IOLoop.current().start()


# 应用运行入口，解析命令行参数
# if __name__ == "__main__":
# 启动服务器
# main()
